﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Espam.Idiomas.Decimo.Tesis.Negocio;
using System.Web.Script.Services;
using System.Web.Services;

namespace Espam.Idiomas.Decimo.Tesis.Web
{
    public partial class UI_RegisterExonerated : System.Web.UI.Page
    {
        string validaSession = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
                Response.Cache.SetAllowResponseInBrowserHistory(false);
                Response.Cache.SetNoStore();

                if (Session["userEspamIdiomasVarSession001"] == null || Session["rolEspamIdiomasVarSession003"] == null)
                {
                    validaSession = "NoHaIniciadoSession";
                    Response.Redirect("UI_Login.aspx?validaSession=" + validaSession);
                }
                else if (Session["userEspamIdiomasVarSession001"] != null && Session["rolEspamIdiomasVarSession003"].ToString() == "Docente")
                {
                    Response.Redirect("UI_DashboardTeacher.aspx");
                }
                else if (Session["userEspamIdiomasVarSession001"] != null && Session["rolEspamIdiomasVarSession003"].ToString() == "Administradores")
                {
                    btnGuardarDocente.Attributes.Add("onclick", "this.disabled=true,this.value='Procesando...';" + ClientScript.GetPostBackEventReference(btnGuardarDocente, null) + ";");
                    lblvalida.Text = "";
                    lblvalida.Visible = false;
                    txtBuscar.AutoPostBack = true;
                    cargaDllGenero();
                }
                else if (Session["userEspamIdiomasVarSession001"] != null && Session["rolEspamIdiomasVarSession003"].ToString() == "Alumno")
                {
                    Response.Redirect("UI_DashboardStudents.aspx");
                }
            }
            else
            {
                lblvalida.Text = "";
                lblvalida.Visible = false;
            }
        }
        private void cargaDllGenero()
        {
            ListadoGeneros oListado = new ListadoGeneros();
            List<Generos> lista = new List<Generos>();
            lista = oListado.getGeneros();
            lista.Insert(0, new Generos() { idGenero = 0, genero = "<seleccione un genero>" });
            ddlGenero.DataSource = lista;
            ddlGenero.DataTextField = "genero";
            ddlGenero.DataValueField = "idGenero";
            ddlGenero.DataBind();
            //ddlNivel

            ddlNivelCarga();
           
            //ddlCarrera
            ListadoCarreras oListadoCarrera = new ListadoCarreras();
            List<Carreras> listaCarreras = new List<Carreras>();
            listaCarreras = oListadoCarrera.GetCarreras();
            listaCarreras.Insert(0, new Carreras() { idCarreras = 0, carrera = "<seleccione una carrera>" });
            ddlCarrera.DataSource = listaCarreras;
            ddlCarrera.DataTextField = "carrera";
            ddlCarrera.DataValueField = "idCarreras";
            ddlCarrera.DataBind();
            //ddlSemestre
            ListadoSemestres oListadoSemestres = new ListadoSemestres();
            List<Semestre> listaSemestres = new List<Semestre>();
            listaSemestres = oListadoSemestres.GetSemestres();
            listaSemestres.Insert(0, new Semestre() { idSemestre = 0, semestre = "<seleccione un semestre>" });
            ddlSemestre.DataSource = listaSemestres;
            ddlSemestre.DataTextField = "semestre";
            ddlSemestre.DataValueField = "idSemestre";
            ddlSemestre.DataBind();
            //ddlEstado
            Modulos oM = new Modulos();
            List<Modulos> listadoEstados = new List<Modulos>();
            listadoEstados = oM.GetEstadosModulos();
            listadoEstados.Insert(0, new Modulos() { idEstado=0,estadoModuloMatricula="<seleccione un estado>"});
            ddlEstadoNivel.DataSource = listadoEstados;
            ddlEstadoNivel.DataTextField = "estadoModuloMatricula";
            ddlEstadoNivel.DataValueField = "idEstado";
            ddlEstadoNivel.DataBind();          
        }
        private void ddlNivelCarga()
        {
            ListadoNiveles oListadoNivel = new ListadoNiveles();
            List<Nivel> listaNivel = new List<Nivel>();
            Ciclos oCiclo = new Ciclos();
            oListadoNivel.ciclo = 23;
            listaNivel = oListadoNivel.getNiveles();
            listaNivel.Insert(0, new Nivel() { idNivel = 0, equivalente = "<seleccione un nivel>" });
            ddlNivel.DataSource = listaNivel;
            ddlNivel.DataTextField = "equivalente";
            ddlNivel.DataValueField = "nivel";
            ddlNivel.DataBind();
        }
        private void LimpiarCampos()
        {
            txtApellidos.Text = string.Empty;
            txtBuscar.Text = string.Empty;
            txtDocumento.Text = string.Empty;
            txtNombres.Text = string.Empty;
            ddlCarrera.SelectedIndex = 0;
            ddlGenero.SelectedIndex = 0;
           ddlNivel.SelectedIndex = 0;
            ddlSemestre.SelectedIndex = 0;
            txtNotaFinal.Text = string.Empty;
            txtFechaPrueba.Text = string.Empty;
        }
        //CAMBIOS SANTANDER
        //[ScriptMethod()]
        //[WebMethod]
        //public static string[] GetAlumno(string prefixText, int count, string contextKey)
        //{
        //    List<string> lista = new List<string>();
        //    Usuarios oUsu = new Usuarios();
        //    oUsu.documento = prefixText;
        //    lista = oUsu.GetUsuariosAutocomplete();
        //    return lista.ToArray();
        //}

        protected void txtBuscar_TextChanged(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtBuscar.Text))
            {

            }
            else
            {
                Usuarios oUsuario = new Usuarios();
                oUsuario.apellidos = txtBuscar.Text;
                List<Usuarios> lista = new List<Usuarios>();
                lista = oUsuario.GetDatosAlumnoRegistrado();
                if (lista.Count > 0)
                {
                    txtNombres.Text = lista[0].nombres;
                    txtApellidos.Text = lista[0].apellidos;
                    txtDocumento.Text = lista[0].documento;
                    ddlGenero.SelectedValue = lista[0].idGenero.ToString();
                    ddlSemestre.SelectedValue = lista[0].idSemestre.ToString();
                    ddlCarrera.SelectedValue = lista[0].idCarrera.ToString();

                }
                else
                {
                    ScriptManager.RegisterStartupScript(this.Page, GetType(), "MostarMensaje", "mensajeMal('EL ALUMNO NO SE ENCUENTRA REGISTRADO EN EL SISTEMA')", true);
                    LimpiarCampos();
                }

            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("UI_RegisterExonerated.aspx");
        }


        protected void btnGuardarDocente_Click(object sender, EventArgs e)
        {
            string mensaje = "";
            Usuarios oUsu = new Usuarios();
            float param1=0;
            float param2=0;
            float param3=0;
            float param4=0;
            float examen=0;
            float suple=0;
            float prom = 0;

            if (ddlNivel.SelectedIndex==0|| string.IsNullOrEmpty(txtNotaFinal.Text))
            {
                
            }
            else
            {
                oUsu.documento = txtDocumento.Text;
                oUsu.nivel = int.Parse(ddlNivel.SelectedValue);
                oUsu.estado = ddlEstadoNivel.SelectedItem.Text;
                param1 = float.Parse(txtNotaFinal.Text) / 5;
                param2 = float.Parse(txtNotaFinal.Text) / 5;
                param3 = float.Parse(txtNotaFinal.Text) / 5;
                param4 = float.Parse(txtNotaFinal.Text) / 5;
                examen = float.Parse(txtNotaFinal.Text) / 5;
                suple = 0;
                prom = float.Parse(txtNotaFinal.Text);
                oUsu.parametro1 = param1;
                oUsu.parametro2 = param2;
                oUsu.parametro3 = param3;
                oUsu.parametro4 = param4;
                oUsu.examenFinal = examen;
                oUsu.supletorio = suple;
                oUsu.promedio = prom;
                oUsu.fechaEntrada = DateTime.Parse(txtFechaPrueba.Text);
                mensaje = oUsu.RegistrarExonerados();
                if (mensaje=="MATRICULADO CORRECTAMENTE")
                {
                     ScriptManager.RegisterStartupScript(this.Page, GetType(), "MostarMensaje", "mensajeBien('REGISTRO GUARDADO CORRECTAMENTE')", true);
                     LimpiarCampos();
                     cargaDllGenero();
                     ddlNivelCarga();
                }
                else if (mensaje == "ERROR AL REALIZAR LA MATRICULA")
                {
                    ScriptManager.RegisterStartupScript(this.Page, GetType(), "MostarMensaje", "mensajeMal('ERROR AL GUARDAR EL REGISTRO')", true);
                }
                else if (mensaje == "YA SE ENCUENTRA REGISTRADO EN ESTE MODULO")
                {
                    ScriptManager.RegisterStartupScript(this.Page, GetType(), "MostarMensaje", "mensajeMal('YA SE ENCUENTRA REGISTRADO EN ESTE MÓDULO')", true);
                }
            }
        }
    }
}